package es.uca.plii.warrenl0;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * Implementa el interfaz ExtractorProfundidades
 * @author Rafael Sánchez, Alfonso Sendra
 */
public class ExtractorProfundidadesImpl implements ExtractorProfundidades{

    /**
     * Almacena el mapa de profindidades del árbol de nodos.
     */
    private Map<Integer, List<Nodo>> mapaEnumerado;

    /**
     * Constructor de la clase
     * @param mapaEnumerado mapa de profundidades de los nodos del árbol
     */
    public ExtractorProfundidadesImpl( Map<Integer, List<Nodo>> mapaEnumerado)
    {
        this.mapaEnumerado = mapaEnumerado;
    }

    /**
     * Añade un nodo al mapa de profundidades de los nodos del árbol
     * @param profundidad la profundidad
     * @param nodo el nodo
     */
    public void anadirNodoAlMapa(Integer profundidad, Nodo nodo) {
       List<Nodo> listaNodos = mapaEnumerado.get(profundidad);
       if(listaNodos==null)
       {
           listaNodos = new ArrayList<Nodo>();
           mapaEnumerado.put(profundidad, listaNodos);
       }
       listaNodos.add(nodo);
    }

}
